System and method for facilitating integrated social group instant messaging

ABSTRACT

A system and machine-implemented method for providing integrated instant messaging functionality in a social networking service, the method including receiving a request from a user having a first user account at a social networking service to view contacts belonging to a social group associated with the first user account, wherein the social group is maintained at the social networking service, identifying one or more contacts belonging to the social group in response to the request, determining a status associated with a user account for each of the identified one or more contacts, the status indicating whether each of the one or more contacts is available for instant messaging communication and providing a listing including the identified one or more contacts and the status associated with each of the identified one or more contacts for display to the user at a social networking site of the social networking service.

This application is a continuation of U.S. patent application Ser. No.13/448,295, entitled “System and Method For Facilitating IntegratedSocial Group Instant Messaging,” filed on Apr. 16, 2012, which in turnclaims the benefit of U.S. Provisional Patent Application Ser. No.61/582,085, entitled “System and Method For Facilitating IntegratedSocial Group Instant Messaging,” filed on Dec. 30, 2011, which arehereby incorporated by reference in their entireties for all purposes.

BACKGROUND

The subject disclosure generally relates to instant messaging services,and, in particular, to providing integrated instant messagingfunctionality with respect to social groups at a social networking site.

Users of social networking sites may create associations with oneanother. Such user associations may be defined on a user-to-user basis,or as a group of users associated through membership within a group. Auser may create social groups including one or more contacts to organizehis/her associations. The social groups may be additionally used tocontrol distribution of messages and content to contacts of the user.Various social networking sites further provide instant messagingfunctionality allowing a user to communicate with his/her contacts. Theinstant messaging functionality allows a user to communicate withcontacts by selecting contacts from a contact list. The user may furthercommunicate with more than one user using a group instant messagingfunction by adding users to an instant messaging session. However, theinstant messaging functionally is independent from the other actionsperformed with respect to a social group and the contact list does notprovide any indication of the contact groups associated with eachcontact.

Thus, it may be desirable to provide the user with a more effective wayof communicating with contacts organized into social groups using aninstant messaging service.

SUMMARY

The disclosed subject matter relates to a method executed on one or morecomputing devices for providing integrated instant messagingfunctionality in a social networking service, the method comprisingreceiving a request from a user having a first user account at a socialnetworking service to view contacts belonging to a social groupassociated with the first user account, wherein the social group ismaintained at the social networking service. The method furthercomprising identifying, using the one or more computing devices, one ormore contacts belonging to the social group in response to the request.The method further comprising determining, using the one or morecomputing devices, a status associated with a user account for each ofthe identified one or more contacts, the status indicating whether eachof the one or more contacts is available for instant messagingcommunication and providing a listing including the identified one ormore contacts and the status associated with each of the identified oneor more contacts for display to the user at a social networking site ofthe social networking service.

The disclosed subject matter also relates to a system for providingintegrated instant messaging functionality in a social networkingservice, the system comprising one or more processors and amachine-readable medium comprising instructions stored therein, whichwhen executed by the processors, cause the processors to performoperations comprising providing a listing of one or more social groupsassociated with a first user account associated with a user maintainedat a social networking service for display to the user at a socialnetworking site associated with the social networking service. Theoperations further comprising receiving a request from the user to viewcontacts belonging to a social group from the listing. The operationsfurther comprising identifying one or more contacts belonging to thesocial group in response to the request. The operations furthercomprising determining an instant messaging status associated with auser account for each of the identified one or more contacts andproviding a listing including the identified one or more contacts andthe instant messaging status associated with the user account of each ofthe identified one or more contacts for display to the user at a socialnetworking site of the social networking service.

The disclosed subject matter also relates to a machine-readable mediumcomprising instructions stored therein, which when executed by amachine, cause the machine to perform operations comprising receiving arequest from a user to view a listing of one or more social groupsassociated with the user account of the user at a social networkingservice. The operations further comprising providing a listing includingthe one or more social groups for display to the user at a socialnetworking site associated with the social networking service. Theoperations further comprising receiving an indication of a selection ofa social group from the listing by the user. The operations furthercomprising identifying one or more contacts belonging to the socialgroup in response to receiving the indication. The operations furthercomprising determining an instant messaging status associated with auser account for each of the identified one or more contacts andproviding a listing including the identified one or more contacts andthe instant messaging status associated with each of the identified oneor more contacts for display to the user on a graphical user interfacedisplayed at a social networking site of the social networking service.

BRIEF DESCRIPTION OF THE DRAWINGS

Certain features of the subject technology are set forth in the appendedclaims. However, for purpose of explanation, several embodiments of thesubject technology are set forth in the following figures.

FIG. 1 illustrates an example client-server network environment whichprovides for facilitating instant messaging with contacts organized intosocial groups.

FIG. 2 illustrates a flow chart of an example process for providing auser of a social networking service with instant messaging informationassociated with a social group.

FIG. 3 illustrates an example process for facilitating an instantmessaging session with contacts associated with a social groupmaintained at a social networking service.

FIG. 4 illustrates an example screen shot of a graphical user interfacedisplaying user social groups with integrated instant messagingfunctionality.

FIG. 5 conceptually illustrates an electronic system with which someimplementations of the subject technology are implemented.

DETAILED DESCRIPTION

The detailed description set forth below is intended as a description ofvarious configurations of the subject technology and is not intended torepresent the only configurations in which the subject technology may bepracticed. The appended drawings are incorporated herein and constitutea part of the detailed description. The detailed description includesspecific details for the purpose of providing a thorough understandingof the subject technology. However, it will be clear and apparent tothose skilled in the art that the subject technology is not limited tothe specific details set forth herein and may be practiced without thesespecific details. In some instances, well-known structures andcomponents are shown in block diagram form in order to avoid obscuringthe concepts of the subject technology.

I. Overview

The subject disclosure provides a method and system for facilitatingintegrated instant messaging functionality for a user of a socialnetworking service to communicate with his/her contacts organized intosocial groups. For example, a user of an electronic device may havedifferent groups of friends, coworkers, and family. Through the creationand use of social groups (e.g., social circles), the user can organizeand categorize his/her contacts into various different groupings. Thesubject disclosure allows the user to view the availability of contactswithin each social group for instant messaging and further provides forstarting an individual instant messaging session with a contact within asocial group or a group instant messaging session with the contactswithin a social group.

Users of social networking services may create associations with oneanother. The phrase “social networking service” as used hereinencompasses its plain and ordinary meaning, including, but not limitedto, an online service, platform or site that focuses on building andreflecting of social associations among users. These associations may bestored within a social graph at each social networking service. Suchuser associations may be defined on a user-to-user basis, or as a groupof users associated through membership within a group. As used herein,“contacts” refer to other users that a user is associated with, at oneor more social networking services.

A user may create “social groups” (e.g., social circles) including oneor more contacts to organize his/her associations. For example, the usermay select one or more contacts and add those contacts to a pre-existingor new social group. The social groups may be additionally used tocontrol distribution of messages and content to contacts of the user.For example, “social circles” are categories to which a user can assigntheir social networking contacts and better control the distribution andvisibility of social networking messages as well as other multimediacontent (e.g., documents, and other collaboration objects). Inaccordance with the subject disclosure, a social group or social circlemay be a data set defining a collection of contacts that are associatedwith one another. As used herein, a social group or social circle can bedescribed from the perspective of an individual that is the center of aparticular collection of socially interconnected people, or from theaggregate perspective of a collection of socially interconnected people.In some examples, a social circle can have narrowly defined boundaries,all of the members of the social circle may be familiar with one anotherand permission may be required for a member to join a social circle. Auser of an electronic device may define a social circle, and the socialcircle, as a data set defining a collection of contacts, may reflect areal-life social circle of the user.

In some embodiments, a social group may be asynchronous. For example, afirst user may form a social group including one or more other users(e.g., a group of friends or family members). The users associated withthe social group may or may not have a corresponding social groupincluding the user and/or the other one or more users. To give a morespecific example, a first user may have a group “siblings” that includesher two brothers and one sister. The sister may have a social group for“nuclear family” that includes the first user, her two brothers, and herparents. The two brothers may have created no social groups at all. Inthis way, although the accounts of the user may be connected in variousways, each user may be able to define one or more social groupsincluding one or more of his/her contacts separately and distinctly.

For example, a user of an electronic device may have different groups offriends, coworkers, and family, and there may be some overlap amongthose groups (e.g., a coworker who is also considered to be a friend, afamily member who is also a coworker). Through the creation and use ofsocial groups (e.g., social circles), the user can organize andcategorize his/her contacts into various different groupings.

The social networking service maintains a social graph of users andtheir interconnections. The social networking service may furthermaintain a listing of social groups associated with each user account. Auser may request to view a listing of his/her social groups (e.g., byclicking on the user group icon or other identifier). The social groupsmay be displayed to the user using various layouts. The user may thenselect a group from the displayed groups to view contacts within thegroup. Upon receiving the request to display the contacts within thegroup, the contacts within the social group are determined by the socialnetworking site and displayed to the user.

The present disclosure further facilitates integrating instant messagingcapability into the graphical user display displaying the socialgroup(s) associated with a user such that when the user requests to viewthe group, the user is provided with an indication of the availabilityof the contacts within the social group for communication through aninstant messaging service. Various instant messaging services providemeans for users to set a status while online, indicating theavailability of the user to engage in a conversation. The status may beset as available, busy, idle, or a customized status created by the user(e.g., working, in a meeting). Additionally, a user may choose to beinvisible, where even though the user is online, the user will appear asoffline to contacts on his/her contact list.

According to the subject disclosure, the system may retrieve an instantmessaging status for each contact within the group and may display thecontact and an indication of his/her instant messaging status (e.g., anavailability icon) in response to the request. The user may then selectcontacts while viewing the displayed information to start an instantmessaging (e.g., chat or instant messaging) session. Additionally, theuser may request to begin an instant messaging session with the socialgroup. Upon receiving the request to start an instant messaging sessionwith the group, the system identifies users available for instantmessaging (based on the instant messaging status) and initiates aninstant messaging session with contacts that are available for instantmessaging. The instant messaging session may further be saved as aninstant messaging thread for viewing by all users within the socialgroup.

In this manner, a user is able to begin instant messaging with hiscontacts directly from the user interface displaying contacts withingroups, instead of having to individually search for a contact through aseparate instant messaging application or contact list. Furthermore, theuser can keep his contacts organized for the purpose of communicationwithin existing social groups, so that the user can determine useravailability for instant messaging without having to search through allcontacts within his/her contact list and/or having to create groups fororganizing contacts within the contact list. Still further, the user isable to begin an instant messaging session with an existing socialgroup. This may be helpful where the user would like to have instantmessaging sessions to discuss ideas with a group of people repeatedlyover a period of time (e.g., a team or family members).

Various embodiments of the subject disclosure may be described herein inreference to an instant messaging service for exemplary purposes. Itshould be understood by one of ordinary skill in the art that the systemand processes described throughout the subject disclosure may beapplicable to various instant messaging services.

The phrase “instant messaging service” as used herein is given its plainand ordinary meaning including, but not limited to, any service allowingfor communication between two or more people (e.g., a user and his/hercontacts) using personal computers or other electronic devices usingmessages. The phrase “instant messaging” as used herein may refer to aform of direct text-based communication in push mode between two or morepeople (e.g., a user and his/her contacts) using personal computers orother electronic devices, along with shared clients. The term furtherencompasses any kind of communication that offers a transmission oftext-based (or other multi-media content) messages from a sender to areceiver and may include point-to-point communications as well asmulticast communications from one sender to many receivers. The directtext-based communication and other transmission of text-based messagesmay be instantaneous, immediate, or may be queued for transmission basedon system and network resources. More advanced instant messagingsoftware clients may also allow enhanced modes of communication, such aslive voice or video calling and inclusion of links to media. The user'smessages may be conveyed over a network, such as the Internet.

The terms “status” and “instant messaging status” are usedinterchangeably throughout the subject disclosure, and are given theirplain and ordinary meaning including, but not limited to, an indicatorreflecting the user's availability to engage in communication with oneor more other users through instant messaging. The status may forexample be set to online indicating that the user is available forengaging in instant messaging communication and offline, which indicatesthat the user is not available to engage instant messagingcommunication. When the user is online, the status may further indicatea state of the user, for example the status may be set to available,indicating that the user is online and available to engage in aconversation, idle, indicating that the user is away from their clientdevice, busy, indicating that the user is busy and would not want to beinterrupted, invisible, which would cause the user to appear offline tohis/her contacts when the user is actually available to engage inconversation, or the status may also be set to a personalized message ormay include a personalized message.

II. Example Client-Server Network Environment for FacilitatingIntegrated Social Group Instant messaging

FIG. 1 illustrates an example client-server network environment whichprovides for facilitating instant messaging with contacts organized intosocial groups. A network environment 100 includes a number of electronicdevices 102, 104, 106 communicably connected to a server 110 and remoteservers 120 by a network 108. Network 108 can be a public communicationnetwork (e.g., the Internet, cellular data network, dialup modems over atelephone network) or a private communications network (e.g., privateLAN, leased lines). Further, network 108 can include, but is not limitedto, any one or more of the following network topologies, including a busnetwork, a star network, a ring network, a mesh network, a star-busnetwork, a tree or hierarchical network, and the like.

In some example embodiments, electronic devices 102, 104 and 106 can becomputing devices such as laptop or desktop computers, smartphones,PDAs, portable media players, tablet computers, televisions or otherdisplays with one or more processors coupled thereto or embeddedtherein, or other appropriate computing devices that can be used to fordisplaying a web page or web application. In the example of FIG. 1,electronic device 102 is depicted as a smartphone, electronic device 104is depicted as a desktop computer and electronic device 106 is depictedas a PDA.

In one embodiment, server 110 includes a processing device 112 and adata store 114. Processing device 112 executes computer instructionsstored in data store 114, for example, to facilitate integrated instantmessaging functionality for social groups of users interacting withelectronic devices 102, 104, 106. Server 110 may further be incommunication with remote servers 120 either through the network 108 orthrough another network or communication means.

According to some aspects, remote servers 120 can be any system ordevice having a processor, a memory and communications capability forhosting various services including one or more remote social networkingservices and/or one or more instant messaging services. The local server110 and/or remote servers 120 may maintain social graphs of users andtheir contacts. The remote social networking services hosted on thelocal server 110 and/or remote server 120 may enable users to create aprofile and associate themselves with other users at a remote socialnetworking service. The local server 110 and/or remote servers 120 mayfurther facilitate the generation and maintenance of a social graphincluding the user created associations. The social graphs may include,for example, a list of all users of the remote social networking serviceand their associations with other users of a remote social networkingservice. In some example the server 110 and/or one or more remoteservers 120 may further host one or more instant messaging services.

In some example aspects, server 110 and/or one or more remote servers120 can be a single computing device such as a computer server. In otherembodiments, server 110 and/or one or more remote servers 120 canrepresent more than one computing device working together to perform theactions of a server computer (e.g., cloud computing). In someembodiments, server 110 and/or one or more remote servers 120 may becoupled with various remote databases or storage services. While server110 and the one or more remote servers 120 are displayed as being remotefrom one another, it should be understood by one skilled in the art thatthe functions performed by these servers may be performed within asingle server, or across multiple servers.

Communications between the client devices 102, 104, 106, server 110and/or one or more remote servers 120 may be facilitated through theHTTP communication protocol. Other communication protocols may also befacilitated including for example, XMPP communication, for some or allcommunications between the client devices 102, 104, 106, server 110 andone or more remote servers 120 (e.g., through network 108).

Users may interact with the system, one or more social networkingservices and/or one or more instant messaging services hosted by server110, and/or one or more remote servers 120, through a client applicationinstalled at the electronic devices 102, 104, 106. Alternatively, theuser may interact with the system, the one or more social networkingservices and/or the one or more instant messaging services through a webbased browser application at the electronic devices 102, 104, 106.Communication between client devices 102, 104, 106 and the system,and/or one or more social networking services, may be facilitatedthrough a network (e.g., network 108).

The network 108 can include, for example, any one or more of a personalarea network (PAN), a local area network (LAN), a campus area network(CAN), a metropolitan area network (MAN), a wide area network (WAN), abroadband network (BBN), the Internet, and the like. Further, thenetwork 108 can include, but is not limited to, any one or more of thefollowing network topologies, including a bus network, a star network, aring network, a mesh network, a star-bus network, tree or hierarchicalnetwork, and the like.

A user at a client device (e.g., electronic devices 102, 104 and 106)may log into his/her user account at a social networking service. Theuser account may be associated with one or more contacts. The contactsassociated with the user may be organized into one or more social groupsassociated with the user account of the user. Upon logging in, the usermay request to view a visual display of his/her social groups. Thesystem upon receiving the request identifies the social groupsassociated with the user account of the user and generates a data setincluding the listing of the social groups and provides the data fordisplay to the user (e.g., at a social networking site graphical userinterface displayed at the user's client device).

The user may select a displayed social group to expand and view thecontacts within the social group. Upon receiving an indication of a userrequest to view the contacts associated with the social group, thesystem identifies the contacts associated with the social group. Thesystem further determines an instant messaging status associated withthe contact account of the user. The status may for example bemaintained at an instant messaging service (e.g., an instant messagingservice communicably coupled to the system and/or social networkingservice). For each contact of the selected social group, the systemidentifies the user account associated with the contact and determinesthe status associated with a user account of the contact. A data setincluding the contacts and the status associated with each contact isgenerated and provided for display at the client device of the user(e.g., electronic device 102, 104 and 106).

The contacts associated with the social group and the status for eachcontact is displayed to the user directly at the social networking siteupon selecting the social group and the user may select to begin aninstant messaging session with one or more contacts within the socialgroup directly from the social networking site graphical user interfacedisplaying the social group and/or the one or more contacts associatedwith social group. Furthermore, the user may request to begin an instantmessaging session with the social group. The system, upon receiving anindication of a user request to begin an instant messaging session,determines if the instant messaging session is between the user and oneor more specific contacts or whether the request is directed to thesocial group. The system then initiates an instant messaging sessionincluding the contacts available for communication based on thedetermined instant messaging status of the contacts.

III. Example Processes for Facilitating Integrated Social Group InstantMessaging

FIG. 2 illustrates a flow chart of an example process for providing auser of a social networking service with instant messaging informationassociated with a social group. In block 201, the system receives anindication of a request from a user to view contacts belonging to asocial group. For example, a user logged into a social networkingservice, and viewing a listing of one or more social groups associatedwith his/her user account at the social networking service may select toview the contacts associated with one of the one or more social groups(e.g., by selecting a link or social group icon or a button displayed atthe social networking site associated with the social networkingservice).

In block 202, the system identifies one or more contacts associated withthe selected social group. In one example, the social networking servicemay maintain a social graph storing associations between the user andone or more contacts and may further maintain information regarding thegrouping of the contacts within one or more social groups associatedwith the user. In one example, upon receiving the indication of the userrequest, the system determines the contacts associated with the selectedsocial group (e.g., by requesting the information from the socialnetworking service). In block 203, the system determines an instantmessaging status for each of the one or more identified contacts. Forexample, at least some of the identified contacts belong to the socialgroup may have an instant messaging account (e.g., as part of the useraccount at the social networking service, or maintained at an instantmessaging service). The system determines the status associated with thecontact account of each of the one or more contacts (e.g., when thosecontacts have an instant messaging feature enabled and/or have aninstant messaging account). In one example, the instant messaging statusmay be determined for those contacts which have installed or authorizedan instant messaging feature and/or those contacts providing properpermissions to the system, the social networking service and/or aninstant messaging service.

In block 204, the system provides the listing of the identified contactsand the determined instant messaging status for each of the one or morecontacts or for those contacts where such information is available fordisplay to the user at the social networking site associated with thesocial networking service. Accordingly, the user does not have to referto a separate contact list to determine the availability of contacts forinstant messaging communications. Additionally, because the availabilityof contacts is viewable in the context of the social group, the user canmore easily assess the availability of contacts belonging to a specificsocial group and can initiate communication with contacts under thesocial group without having to traverse his/her entire contacts list.The organization and management of contacts is similarly made easierbecause the instant messaging features are integrated into the existingsocial groups such that the user does not have to duplicate the effortsand organize his contacts within his/her contact list into groups.

The user, upon viewing the displayed information at the socialnetworking service, can request to initiate communication with one ormore social networking contacts. The graphical user interface displayingthe one or more contacts may provide one or more mechanisms forselecting one or more contacts for initiating an instant messagingsession and/or a mechanism for initiating a social group instantmessaging session. For example, a button or a drop down menu may beprovided next to each contact, or a selection box may be provided forselecting one or more contacts. Furthermore, a button or drop down menumay be displayed next to the social group to allow initiating an instantmessaging session with contact(s) of the social group. An examplegraphical user interface displaying social groups and one or morecontacts is described in further detail below with respect to FIG. 4.

FIG. 3 illustrates an example process for facilitating an instantmessaging session with contacts associated with a social groupmaintained at a social networking service. In block 301, the systemreceives an indication of a request from a user to begin an instantmessaging session. In one example, as described above, a mechanism forinitiating an instant messaging session with one or more contactsassociated with a social group and/or the social group generally. In oneexample, the user may request to initiate an instant messaging sessionusing one of the one or more provided mechanisms displayed along withthe displayed listing of social groups and/or listing of contacts ofsocial groups being displayed to the user at the social networking siteassociated with the social networking service.

In block 302, the system determines if the request is for a social groupinstant messaging session. As described above, upon viewing the one ormore contacts associated with a social group, the user may selectspecific contact(s) for initiating an instant messaging session, of mayrequest to initiate an instant messaging session with the social groupgenerally. If, in block 302, the system determines that the request isnot a social group instant messaging session request (i.e., the user hasselected specific contacts instead of the social group), the processcontinues to block 303.

In block 303, the system initiates the instant messaging session withthe selected one or more contacts. In one example, the initiation of aninstant messaging session is performed by sending a request to theinstant messaging service (e.g., hosted at remote server 120) includinga listing of the one or more contacts selected by the user. Thegenerated instant messaging session is provided for display to the userat the social networking site associated with the social networkingservice. In one example, the selected contacts are selected by the userbased on their status, and those users not available for instantmessaging according to their determined status may not be selectable bythe user (e.g., grayed out), or may not be added to the instantmessaging session if they are selected by the user.

Otherwise, if in block 303 it is determined that the request is forinitiating an instant messaging session with the social group, in block304, the system identifies the contacts of the social group availablefor communication based on the determined instant messaging status ofthe contacts of the social group. In block 305, the system initiates aninstant messaging session with the identified contacts of the socialgroup available to join the instant messaging session. In one example,to initiate the instant messaging session, the system provides a list ofthe contacts of the social group determined to be available and requeststhat the instant messaging service create an instant messaging sessionwith the provided contacts. The generated instant messaging session isprovided for display to the user at the social networking siteassociated with the social networking service.

While the processes described herein are described as being performed bythe system, it should be understood that various blocks may be performedby one or more local and/or remote services (e.g., the social networkingservice, the instant messaging service). For example, one of more of theblocks of the process could be performed by a user's electronic device.

FIG. 4 illustrates an example screen shot of a graphical user interfacedisplaying user social groups with integrated instant messagingfunctionality. As illustrated, the user has three social groups 401, 402and 403. Social group 401 is named “friends” and may include one or morecontacts of the user. Social group 402 is named “family” and may includeone or more contacts of the user. Social group 403 is named “Colleagues”and as illustrated includes contacts A-H. The user may select one of theone or more social groups, and the social group may be expanded todisplay the contacts within the social group. Furthermore, asillustrated, when the social group 403 is expanded, the contacts may bedisplayed as tiles 404-411. Each user is displayed with an image, andthe name of the contact. Each tile 404-411 further illustrates anindication of the contact's instant messaging status as an availabilityicon and a mechanism, illustrated as a “chat” button, for allowing theuser to initiate an instant messaging conversation with the contact. Forexample, tile 404 is illustrated as displaying an image 412 of user A,and includes an availability icon 413 and chat button 414. Availabilityicons and chat button may be displayed for those users available forinstant messaging (e.g., online and/or having instant messagingfunctionality enabled on their user accounts). For example, asillustrated in FIG. 4, users A, B, E, F and G are displayed having anavailability icon and chat button displayed within their tile whileusers C and H do not have an availability icon or chat button displayed.In another example, a specific icon may be displayed indicating that theuser is not available or does not have instant messaging functionalitycapabilities, and/or the chat button may be displayed but not selectable(e.g., grayed out).

In addition, the user may select the user from the contacts from theexpanded social circle and a tile associated with the user may bedisplayed. For example, in FIG. 4, contact G has been selected by theuser and a tile 415 is displayed including an indication of thecontact's instant messaging status as an availability icon 416 and chatbutton 417, such that the user may initiate an instant messagingcommunication with contact G. Furthermore, a “Group Chat” button 418 isdisplayed, which may be selected to begin an instant messagingcommunication with one or more users available for instant messaging.The user, upon viewing the displayed information at the socialnetworking service, can request to initiate communication with one ormore social networking contacts.

Many of the above-described features and applications are implemented assoftware processes that are specified as a set of instructions recordedon a computer readable storage medium (also referred to as computerreadable medium). When these instructions are executed by one or moreprocessing unit(s) (e.g., one or more processors, cores of processors,or other processing units), they cause the processing unit(s) to performthe actions indicated in the instructions. Examples of computer readablemedia include, but are not limited to, CD-ROMs, flash drives, RAM chips,hard drives, EPROMs, etc. The computer readable media does not includecarrier waves and electronic signals passing wirelessly or over wiredconnections.

In this specification, the term “software” is meant to include firmwareresiding in read-only memory or applications stored in magnetic storage,which can be read into memory for processing by a processor. Also, insome implementations, multiple software aspects of the subjectdisclosure can be implemented as sub-parts of a larger program whileremaining distinct software aspects of the subject disclosure. In someimplementations, multiple software aspects can also be implemented asseparate programs. Finally, any combination of separate programs thattogether implement a software aspect described here is within the scopeof the subject disclosure. In some implementations, the softwareprograms, when installed to operate on one or more electronic systems,define one or more specific machine implementations that execute andperform the operations of the software programs.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

IV. Example System for Facilitating Integrated Social Group InstantMessaging

FIG. 5 conceptually illustrates an electronic system with which someimplementations of the subject technology are implemented. Electronicsystem 500 can be a server, computer, phone, PDA, laptop, tabletcomputer, television with one or more processors embedded therein orcoupled thereto, or any other sort of electronic device. Such anelectronic system includes various types of computer readable media andinterfaces for various other types of computer readable media.Electronic system 500 includes a bus 508, processing unit(s) 512, asystem memory 504, a read-only memory (ROM) 510, a permanent storagedevice 502, an input device interface 514, an output device interface506, and a network interface 516.

Bus 508 collectively represents all system, peripheral, and chipsetbuses that communicatively connect the numerous internal devices ofelectronic system 500. For instance, bus 508 communicatively connectsprocessing unit(s) 512 with ROM 510, system memory 504, and permanentstorage device 502.

From these various memory units, processing unit(s) 512 retrievesinstructions to execute and data to process in order to execute theprocesses of the subject disclosure. The processing unit(s) can be asingle processor or a multi-core processor in different implementations.

ROM 510 stores static data and instructions that are needed byprocessing unit(s) 512 and other modules of the electronic system.Permanent storage device 502, on the other hand, is a read-and-writememory device. This device is a non-volatile memory unit that storesinstructions and data even when electronic system 500 is off. Someimplementations of the subject disclosure use a mass-storage device(such as a magnetic or optical disk and its corresponding disk drive) aspermanent storage device 502.

Other implementations use a removable storage device (such as a floppydisk, flash drive, and its corresponding disk drive) as permanentstorage device 502. Like permanent storage device 502, system memory 504is a read-and-write memory device. However, unlike storage device 502,system memory 504 is a volatile read-and-write memory, such a randomaccess memory. System memory 504 stores some of the instructions anddata that the processor needs at runtime. In some implementations, theprocesses of the subject disclosure are stored in system memory 504,permanent storage device 502, and/or ROM 510. For example, the variousmemory units include instructions for facilitating a social groupinstant messaging session according to various embodiments. From thesevarious memory units, processing unit(s) 512 retrieves instructions toexecute and data to process in order to execute the processes of someimplementations.

Bus 508 also connects to input and output device interfaces 514 and 506.Input device interface 514 enables the user to communicate informationand select commands to the electronic system. Input devices used withinput device interface 514 include, for example, alphanumeric keyboardsand pointing devices (also called “cursor control devices”). Outputdevice interfaces 506 enables, for example, the display of imagesgenerated by the electronic system 500. Output devices used with outputdevice interface 506 include, for example, printers and display devices,such as cathode ray tubes (CRT) or liquid crystal displays (LCD). Someimplementations include devices such as a touchscreen that functions asboth input and output devices.

Finally, as shown in FIG. 5, bus 508 also couples electronic system 500to a network (not shown) through a network interface 516. In thismanner, the computer can be a part of a network of computers (such as alocal area network (“LAN”), a wide area network (“WAN”), or an Intranet,or a network of networks, such as the Internet. Any or all components ofelectronic system 500 can be used in conjunction with the subjectdisclosure.

These functions described above can be implemented in digital electroniccircuitry, in computer software, firmware or hardware. The techniquescan be implemented using one or more computer program products.Programmable processors and computers can be included in or packaged asmobile devices. The processes and logic flows can be performed by one ormore programmable processors and by one or more programmable logiccircuitry. General and special purpose computing devices and storagedevices can be interconnected through communication networks.

Some implementations include electronic components, such asmicroprocessors, storage and memory that store computer programinstructions in a machine-readable or computer-readable medium(alternatively referred to as computer-readable storage media,machine-readable media, or machine-readable storage media). Someexamples of such computer-readable media include RAM, ROM, read-onlycompact discs (CD-ROM), recordable compact discs (CD-R), rewritablecompact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM,dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g.,DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SDcards, micro-SD cards, etc.), magnetic and/or solid state hard drives,read-only and recordable Blu-Ray® discs, ultra density optical discs,any other optical or magnetic media, and floppy disks. Thecomputer-readable media can store a computer program that is executableby at least one processing unit and includes sets of instructions forperforming various operations. Examples of computer programs or computercode include machine code, such as is produced by a compiler, and filesincluding higher-level code that are executed by a computer, anelectronic component, or a microprocessor using an interpreter.

While the above discussion primarily refers to microprocessor ormulti-core processors that execute software, some implementations areperformed by one or more integrated circuits, such as applicationspecific integrated circuits (ASICs) or field programmable gate arrays(FPGAs). In some implementations, such integrated circuits executeinstructions that are stored on the circuit itself.

As used in this specification and any claims of this application, theterms “computer”, “server”, “processor”, and “memory” all refer toelectronic or other technological devices. These terms exclude people orgroups of people. For the purposes of the specification, the termsdisplay or displaying means displaying on an electronic device. As usedin this specification and any claims of this application, the terms“computer readable medium” and “computer readable media” are entirelyrestricted to tangible, physical objects that store information in aform that is readable by a computer. These terms exclude any wirelesssignals, wired download signals, and any other ephemeral signals.

To provide for interaction with a user, implementations of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information to the user and akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input. In addition, a computer can interact with a user bysending documents to and receiving documents from a device that is usedby the user; for example, by sending web pages to a web browser on auser's client device in response to requests received from the webbrowser.

Embodiments of the subject matter described in this specification can beimplemented in a computing system that includes a back end component,e.g., as a data server, or that includes a middleware component, e.g.,an application server, or that includes a front end component, e.g., aclient computer having a graphical user interface or a Web browserthrough which a user can interact with an implementation of the subjectmatter described in this specification, or any combination of one ormore such back end, middleware, or front end components. The componentsof the system can be interconnected by any form or medium of digitaldata communication, e.g., a communication network. Examples ofcommunication networks include a local area network (“LAN”) and a widearea network (“WAN”), an inter-network (e.g., the Internet), andpeer-to-peer networks (e.g., ad hoc peer-to-peer networks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someembodiments, a server transmits data (e.g., an HTML page) to a clientdevice (e.g., for purposes of displaying data to and receiving userinput from a user interacting with the client device). Data generated atthe client device (e.g., a result of the user interaction) can bereceived from the client device at the server.

It is understood that any specific order or hierarchy of blocks in theprocesses disclosed is an illustration of exemplary approaches. Basedupon design preferences, it is understood that the specific order orhierarchy of blocks in the processes may be rearranged, or that someillustrated blocks may not be performed. Some of the blocks may beperformed simultaneously. For example, in certain circumstances,multitasking and parallel processing may be advantageous. Moreover, theseparation of various system components in the embodiments describedabove should not be understood as requiring such separation in allembodiments, and it should be understood that the described programcomponents and systems can generally be integrated together in a singlesoftware product or packaged into multiple software products.

The previous description is provided to enable any person skilled in theart to practice the various aspects described herein. Variousmodifications to these aspects will be readily apparent to those skilledin the art, and the generic principles defined herein may be applied toother aspects. Thus, the claims are not intended to be limited to theaspects shown herein, but are to be accorded the full scope consistentwith the language claims, wherein reference to an element in thesingular is not intended to mean “one and only one” unless specificallyso stated, but rather “one or more.” Unless specifically statedotherwise, the term “some” refers to one or more. Pronouns in themasculine (e.g., his) include the feminine and neuter gender (e.g., herand its) and vice versa. Headings and subheadings, if any, are used forconvenience only and do not limit the subject disclosure. Features underone heading may be combined with features under one or more otherheading and all features under one heading need not be use together.Features under one heading may be combined with features under one ormore other heading and all features under one heading need not be usetogether.

A phrase such as an “aspect” does not imply that such aspect isessential to the subject technology or that such aspect applies to allconfigurations of the subject technology. A disclosure relating to anaspect may apply to all configurations, or one or more configurations. Aphrase such as an aspect may refer to one or more aspects and viceversa. A phrase such as a “configuration” does not imply that suchconfiguration is essential to the subject technology or that suchconfiguration applies to all configurations of the subject technology. Adisclosure relating to a configuration may apply to all configurations,or one or more configurations. A phrase such as a configuration mayrefer to one or more configurations and vice versa.

The word “exemplary” is used herein to mean “serving as an example orillustration.” Any aspect or design described herein as “exemplary” isnot necessarily to be construed as preferred or advantageous over otheraspects or designs.

All structural and functional equivalents to the elements of the variousaspects described throughout this disclosure that are known or latercome to be known to those of ordinary skill in the art are expresslyincorporated herein by reference and are intended to be encompassed bythe claims. Moreover, nothing disclosed herein is intended to bededicated to the public regardless of whether such disclosure isexplicitly recited in the claims.

What is claimed is:
 1. A computer-implemented method, comprising:providing for display a graphical user interface including at least onegroup icon representing a social group associated with a user of asocial networking service; in response to a user selection of a groupicon, expanding the group icon to a listing of a plurality of contactsin a social group represented by the selected group icon; receiving arequest from the user to engage in instant messaging with the socialgroup; and in response to the user request, initiating, within thegraphical user interface, an instant messaging session between the userand one or more contacts available for instant messaging in the socialgroup.
 2. The method of claim 1, wherein the listing includes a name andan image for each of the plurality of contacts in the social group. 3.The method of claim 1, further comprising: in response to the userselection , providing for display a group chat button for initiating aninstant messaging session along with the listing.
 4. The method of claim1, further comprising: in response to the user selection, determining anavailability of each of the plurality of contacts for instant messaging;and providing for display a chat button along with each contactavailable for instant messaging in the listing.
 5. The method of claim4, wherein determining the availability comprises receiving theavailability of each of the plurality of contacts for instant messagingfrom the social networking service or an instant messaging service otherthan the social networking service.
 6. The method of claim 1, furthercomprising: in response to the user request, identifying one or morecontacts available for instant messaging.
 7. The method of claim 6,further comprising: receiving a user selection of a subset of the one ormore contacts available for instant messaging and a user request toengage in instant messaging with the selected subset of the one or morecontacts; and initiating an instant messaging communication sessionbetween the user and the selected subset of the one or more contacts. 8.A system for providing integrated instant messaging functionality in asocial networking service, the system comprising: one or moreprocessors; and a machine-readable medium comprising instructions storedtherein, which when executed by the processors, cause the processors toperform a method comprising: receiving a request from a user to viewcontacts belonging to a social group associated with the user at asocial networking site; identifying one or more contacts belonging tothe social group in response to the request; determining an instantmessaging status for each of the one or more contacts; and providing fordisplay a listing including the one or more contacts and an indicationof the instant messaging status for each of the one or more contacts tothe user.
 9. The system of claim 8, wherein the method furthercomprises: providing for display a group chat button for initiating aninstant messaging session along with the listing.
 10. The system ofclaim 9, wherein the method further comprises: receiving a first userselection of the group chat button; and in response to the first userselection, initiating an instant messaging session between the user andat least one contact available for instant messaging in the socialgroup.
 11. The system of claim 8, wherein the method further comprises:providing for display a chat button along with each contact availablefor instant messaging in the listing based on the indication of theinstant messaging status for each of the one or more contacts.
 12. Thesystem of claim 11, wherein the method further comprises: receiving asecond user selection of a subset of the one or more contacts that areavailable for instant messaging and a user request to engage in instantmessaging with the selected subset of the one or more contacts; andinitiating an instant messaging session between the user and the subsetof the one or more contacts.
 13. The system of claim 8, whereindetermining the instant messaging status comprises receiving the instantmessaging status of each of the one or more contacts from the socialnetworking site or an instant messaging service not provided by thesocial networking site.
 14. The system of claim 13, wherein the instantmessaging status indicates whether each of the one or more contacts isavailable for instant messaging.
 15. The system of claim 8, wherein thesystem further comprises a client device, and wherein the client devicecomprise one or more processors, configured to display a listingincluding the one or more contacts and the instant messaging status foreach of the one or more contacts in the social group.
 16. Anon-transitory machine-readable medium comprising instructions storedtherein, which when executed by a machine, cause the machine to performa method comprising: providing for display a graphical user interfaceincluding at least one group icon representing a social group associatedwith a user of a social networking service; in response to a userselection of a group icon, expanding the group icon to a listing of aplurality of contacts in a social group represented by the selectedgroup icon; receiving a request from the user to engage in instantmessaging with the social group; in response to the user request,identifying one or more contacts available for instant messaging; andinitiating, within the graphical user interface, an instant messagingsession between the user and the identified one or more contactsavailable for instant messaging in the social group.
 17. Thenon-transitory machine-readable medium of claim 16, wherein the methodfurther comprises: in response to the user selection, providing fordisplay a group chat button for initiating an instant messaging sessionalong with the listing.
 18. The non-transitory machine-readable mediumof claim 16, wherein the method further comprises: in response to theuser selection, determining an availability of each of the plurality ofcontacts for instant messaging; and providing for display a chat buttonalong with each contact available for instant messaging in the listing.19. The non-transitory machine-readable medium of claim 18, wherein themethod further comprises: wherein determining the availability comprisesreceiving the availability of each of the plurality of contacts forinstant messaging from the social networking service or an instantmessaging service other than the social networking service.
 20. Thenon-transitory machine-readable medium of claim 16, wherein the methodfurther comprises: receiving a user selection of a subset of the one ormore contacts available for instant messaging and a user request toengage in instant messaging with the selected subset of the one or morecontacts; and initiating an instant messaging communication sessionbetween the user and the selected subset of the one or more contacts.